/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 苏李涛
 * Date: 2024-06-06
 * Time: 21:15
 */


/**
 * 非泛型
 */
/*class My_array {
    public Object[] array = new Object[10];

    public Object getArray(int pos) {
        return array[pos];
    }

    public void setArray(int pos, Object val) {
        this.array[pos] = val;
    }
}*/

public class Test {
    /*public static void main0(String[] args) {
        My_array my_array = new My_array();
        //放置元素太乱，
        my_array.setArray(0, "haha");
        my_array.setArray(1, 2);

        //如果数据太多，每次返回，向下转型太麻烦
        String str = (String) my_array.getArray(0);
    }*/







    public static void main(String[] args) {

                //指定你要的类型
        My_array<Integer/*只能写类类型*/> my_array = new My_array</*Integer*/>();

//        my_array.setArray(0, "haha");//自动类型检查
        my_array.setArray(0, 2);

        Integer a =  my_array.getArray(0);//自动类型转换
        System.out.println(a);


        /**
         * 想给数组放你想要的类型
         */
        My_array<String> my_array1 = new My_array<>();
        my_array1.setArray(0, "haha");

        String str = my_a rray1.getArray(0);
        System.out.println(str);
    }

}

/**
 * 用泛型
 */
              //这个E相当于占位符
class My_array<E> {
    public Object[] array = new Object[10];

    public E getArray(int pos) {
        return (E) array[pos];
    }

    public void setArray(int pos, E val) {
        this.array[pos] = val;
    }
}